#ifndef __ULCORE_RANDOMPOOL_H__
#define __ULCORE_RANDOMPOOL_H__

#include <iostream>
#include <list>

using namespace std;

class ULC_RandomPool{
private:
	list<int> pool;
	list<int>::iterator iter;
public:
	ULC_RandomPool();
	ULC_RandomPool(unsigned long randSeed);
	~ULC_RandomPool();
	bool FindNumber(int number);
	void AddNumbers(int nNumbers, int *numbers);
	void DelNumbers(int nNumbers, int *numbers);
	void AddNumber(int number);
	void DelNumber(int number);
	int GetNumber();
	int GetNumber(int index);
	void SetRandomSeed(unsigned long randSeed);
	bool Empty();
	void Reset();
	friend ostream& operator<<(ostream &os,ULC_RandomPool &pool);
};

#endif /*__ULCORE_RANDOMPOOL_H__*/
